import Vue from "vue";
import Vuex from "vuex";

Vue.use(Vuex);
// import vuexPersist from "vuex-persist"; //持久化插件
import { getLogin } from "@/api/api.js"

export default new Vuex.Store({
  state: {
    token:'',
  },
  mutations: {
    setLogin(state, token) {
      state.token = token
      localStorage.setItem('token',token)
    },
  },
  actions: {
    //登录-异步方法提交同步，接受外部传过来的值
     setLogin({commit},userinfo){
    //1.请求登录接口-常规方法
    //     console.log('接受用户信息',userinfo);
    //     getLogin(userinfo).then(res=>{
    //         console.log('登录成功结果',res);
    //      // context.commit('setLogin',res.data.token)
    //         commit('setLogin',res.data.token)
    //         if(res.meta.status===200){
    //             location.href='/#/home'
    //         }
    //     })
    //2.请求登录接口-如何把请求到的结果，拿到外面页面使用？
      return new Promise((resolve,reject)=>{
          getLogin(userinfo).then(res=>{
            // console.log('登录成功结果',res);
            commit('setLogin',res.data.token)
            resolve(res)
          }).catch(err=>{
              reject(err)
          })
      })     
        
    },
      //退出登录
     logOut({commit}){
        commit("setLogin","");
        localStorage.removeItem('token')
        location.href='/#/login'
    }
  },
  getters:{},
  modules: {},
  // plugins: [
  //   new vuexPersist({
  //     localstorage: window.localStorage,
  //   }).plugin,
  // ],
});
